import axios from 'axios'

// 创建axios实例 - 调用本地后端服务
const apiClient = axios.create({
  // 使用代理路径，会被vite代理到后端服务
  baseURL: '/api',
  headers: {
    'Content-Type': 'application/json'
  },
  timeout: 3000000 // 请求超时时间
})

// 请求拦截器
apiClient.interceptors.request.use(
  config => {
    // 在这里可以添加认证信息或其他请求前的处理
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
apiClient.interceptors.response.use(
  response => {
    // 处理响应数据
    return response
  },
  error => {
    // 处理响应错误
    console.error('API请求错误:', error)
    return Promise.reject(error)
  }
)

/**
 * 图像分析服务 - 调用后端服务，后端会连接阿里云视觉模型
 * @param {File} imageFile - 要分析的图像文件
 * @param {Object} options - 分析选项，包括提示文本
 * @returns {Promise} - 返回分析结果的Promise
 */
export const analyzeImage = async (imageFile, options = {}) => {
  try {
    // 创建FormData对象，用于文件上传
    const formData = new FormData()
    
    // 添加图像文件
    formData.append('image', imageFile)
    
    // 添加提示文本
    if (options.prompt) {
      formData.append('prompt', options.prompt)
    }
    
    // 发送请求到后端服务
    const response = await apiClient.post('/analyze', formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
    
    // 返回后端处理后的结果
    return response.data
  } catch (error) {
    console.error('图像分析失败:', error)
    throw error
  }
}

export default {
  analyzeImage
}